# core/anchor.py
import re


def add_anchors_to_html(html_content: str) -> str:
    """
    为HTML内容中的标题标签添加锚点ID。

    Args:
        html_content: 要处理的HTML字符串。

    Returns:
        添加了锚点ID的HTML字符串。
    """
    # 使用正则表达式找到标题标签
    # 这里需要考虑标签可能包含其他属性，以及ID生成的唯一性
    # 这个函数可能需要拆分成更小的部分，例如：
    # _find_headings, _generate_unique_id, _add_id_to_tag
    heading_pattern = re.compile(r'<h([1-6])(.*?)>(.*?)</h\1>', re.IGNORECASE)

    def add_id(match):
        level = match.group(1)
        attributes = match.group(2)
        heading_text = match.group(3)
        # 生成ID的逻辑，例如：将文本转为小写，替换空格和特殊字符
        heading_id = re.sub(r'[^a-z0-9\-]', '-', heading_text.lower()).strip('-')
        # 确保ID唯一，这里简化处理，实际可能需要更复杂的逻辑
        new_attributes = f'{attributes} id="{heading_id}"' if attributes else f' id="{heading_id}"'
        return f'<h{level}{new_attributes}>{heading_text}</h{level}>'

    return heading_pattern.sub(add_id, html_content)
